코딩테스트 연습 - 문자열 다루기 기본 | 프로그래머스 스쿨
[ 템플릿 코드 ]
#include <string>
#include <vector>
using namespace std;
bool solution(string s) {
bool answer = true;
return answer;
}[ 풀이 ]
#include <string>
using namespace std;
bool solution(string s)
{
if (s.length() != 4 && s.length() != 6)
{
return false;
}
for (char c : s)
{
if (c < '0' || c > '9')
{
return false;
}
}
return true;
}[ 해설 ]
#include <string>
using namespace std;
bool solution(string s)
{
// 길이가 4도 아니고 6도 아니면 false
if (s.length() != 4 && s.length() != 6)
{
return false;
}
// 문자열의 모든 문자를 확인
for (char c : s)
{
// 숫자가 아니면 false
if (c < '0' || c > '9')
{
return false;
}
}
// 길이도 맞고 모두 숫자라면 true
return true;
}[ 타 답안 ]
#include <string>
#include <vector>
#include <sstream>
using namespace std;
bool solution(string s)
{
// 기본 반환값은 false로 설정
bool answer = false;
// 문자열을 입력 스트림처럼 사용하기 위한 객체 생성
stringstream ss;
// 문자열을 숫자로 변환하여 저장할 변수
int num;
// 문자열 s를 stringstream에 넣음
ss.str(s);
// 문자열 길이가 4인 경우
if (s.size() == 4)
{
// stringstream에 저장된 문자열을 int로 변환
ss >> num;
// 숫자가 1000 이상이면 4자리 숫자라고 판단
// (예: 1234 -> true)
if (num - 1000 >= 0)
answer = true;
}
// 문자열 길이가 6인 경우
else if (s.size() == 6)
{
// stringstream에 저장된 문자열을 int로 변환
ss >> num;
// 숫자가 100000 이상이면 6자리 숫자라고 판단
// (예: 123456 -> true)
if (num - 100000 >= 0)
answer = true;
}
// 최종 결과 반환
return answer;
}